Learn R Programming

pbdMPI (version 0.3-0)

global print and cat: Global Print and Cat Functions

Description

The functions globally print or cat a variable from specified processors, by default messages is shown on screen.

Usage

comm.print(x, all.rank = .pbd_env$SPMD.CT$print.all.rank,
           rank.print = .pbd_env$SPMD.CT$rank.source,
           comm = .pbd_env$SPMD.CT$comm,
           quiet = .pbd_env$SPMD.CT$print.quiet,
           flush = .pbd_env$SPMD.CT$msg.flush,
           barrier = .pbd_env$SPMD.CT$msg.barrier,
           con = stdout(), ...)

comm.cat(..., all.rank = .pbd_env$SPMD.CT$print.all.rank, rank.print = .pbd_env$SPMD.CT$rank.source, comm = .pbd_env$SPMD.CT$comm, quiet = .pbd_env$SPMD.CT$print.quiet, sep = " ", fill = FALSE, labels = NULL, append = FALSE, flush = .pbd_env$SPMD.CT$msg.flush, barrier = .pbd_env$SPMD.CT$msg.barrier, con = stdout())

Arguments

x
a variable to be printed.
...
variables to be cat.
all.rank
if all ranks print (default = FALSE).
rank.print
rank for printing if not all ranks print (default = 0).
comm
communicator for printing (default = 1).
quiet
FALSE for printing rank number.
sep
sep argument as in the cat() function.
fill
fill argument as in the cat() function.
labels
labels argument as in the cat() function.
append
labels argument as in the cat() function.
flush
if flush con.
barrier
if barrier con.
con
stdout() is the default to print message.

Value

  • A print() or cat() is called for the specified processors and the messages of the input variables is shown on screen by default.

Details

Warning: These two functions use barrier() to make sure the well printing process on screen, so should be called by all processors to avoid a deadlock. A typical misuse is called inside a condition check, such as if(.comm.rank == 0) comm.cat(...).

rank.print can be a integer vector containing the ranks of processors which print messages.

References

Programming with Big Data in R Website: http://r-pbd.org/

Examples

Run this code
### Save code in a file "demo.r" and run with 2 processors by
### SHELL> mpiexec -np 2 Rscript demo.r

### Initial.
suppressMessages(library(pbdMPI, quietly = TRUE))
init()

### Example.
comm.print(comm.rank(), rank.print = 1)

### Finish.
finalize()

Run the code above in your browser using DataLab